Databases are computerized information storage and retrieval systems in which very large sets of data may be stored. A relational database management system is a computer database management system (DBMS) that uses relational techniques for storing and retrieving data from the databases. The most common type of database is the relational database in which data is defined so that it could be organized and accessed in a number of different ways. Another type of database, referred to as a distributed database, is one that can be dispersed or replicated among different points in a network. In a distributed database, data sets are stored and processed in a distributed manner, where scale-out is a key feature in describing the capabilities to scale the processing and storage across servers in a cluster. The data sets are often maintained in a table with rows and columns, where rows organize instances of related data and columns group data having common attributes. In order to access the data from a location in the database, a user performs a query operation that is handled by the DMBS. When data sets are organized using attributes, queries may be facilitated in a more efficient manner. Additionally, techniques such as data pruning and partitioning and predicate push down may be applied to produce facilitation of efficient query results.
Most database management systems (DBMS) include a component called “query engine,” or “query processing engine.” The query engine is responsible for transforming the user query into a sequence of actions, called a “query plan,” to answer the query. An “optimized” query plan uses various techniques to process the query more efficiently. For example, queries are often expressed in a query language such as a standard query language (SQL). The statements of the query language set out the search criteria of the user query in logical or “Boolean” expressions. The expressions of a query that determine the search criteria are called predicates. However, queries are often limited or narrow in scope and are typically directed to a small subset of the entire data set. For example, a “WHERE” clause of a query limits the interested data to those satisfying, or filtered by, the Boolean condition. The predicate (or predicate expression) consists of common and unique operators that employ constructs such as “AND,” “OR,” and “NOT.” This way, query processing is an often time consuming and cost intensive operation since very large amounts of data may be processed and require retrieval from different sources throughout the database system.